package com.ruoyi.biz.core.domain;

import java.util.Objects;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 实体类，约定数据库表的代理主键取名为 dbid
 */
public class AbstractEntity extends BaseEntity {

    /** 数据库表中的代理主键，唯一标识 */
    private Long dbid;
    /** 创建者，调整为 Long 类型 */
    private Long createBy;
    /** 更新者，调整为 Long 类型 */
    private Long updateBy;

    public Long getDbid() {
        return dbid;
    }

    public void setDbid(Long dbid) {
        this.dbid = dbid;
    }

    public Long getCreateUserId() {
        if(this.createBy == null && super.getCreateBy() != null) {
            return Long.valueOf(super.getCreateBy());
        } else {
            return this.createBy;
        }
    }

    public void setCreateBy(Long createBy) {
        this.createBy = createBy;
        // 这里需要给BaseEntity.createBy赋值，否则保存时会报create_by字段的值为空
        super.setCreateBy(Objects.toString(createBy, null));
    }

    public Long getUpdateUserId() {
        if(this.updateBy == null && super.getUpdateBy() != null) {
            return Long.valueOf(super.getUpdateBy());
        } else {
            return this.updateBy;
        }
    }

    public void setUpdateBy(Long updateBy) {
        this.updateBy = updateBy;
        // 这里需要给BaseEntity.updateBy赋值，否则保存时会报updateBy字段的值为空
        super.setUpdateBy(Objects.toString(updateBy, null));
    }
}
